- Principale causa di morbositร , invaliditร e mortalitร
- Incessante attivitร di ricerca in campo medico
- Interesse guidato da esperienze personali
1/9/2020
Heart Disease UCI, dataset a cura di:
## Age ## 1 29
## Age ## 303 77
max_heart_rate <- function(age){
return(220-age)
}
max_heart_rate(30)
## [1] 190
max_heart_rate(50)
## [1] 170
- BS < 100 mg/dL (normale)
- 100 mg/dl <= BS <= 120 mg/dL (aumento del rischio)
- BS > 120 mg/dL (alto rischio)รน
Il dataset indica, tramite la variabile FastingBloodSugar, lโeventuale superamento del valore di 120 mg/dL.
Interpretazione dei valori relativi alla pressione del paziente:
- 90 - 120: regolare
- 120 - 140: lievemente alta
- 140 - 200: eccessivamente alta
Che cosโรจ il colesterolo sierico?
Una misura quantitativa di HDLC, LDLC e triglicerici presenti nel sangue
“I valori di colesterolo sierico, anche se sopra il limite massimo, non sono significativamente correlati con la quantificazione del rischio cardiovascolare. ร consigliabile concentrarsi sul miglioramento della frazione HDL, sul potenziamento delle difese immunitarie e sul consumo di antiossidanti”.
## # A tibble: 8 x 3 ## # Groups: ChestPain [4] ## ChestPain ExerciseAngina count ## <chr> <chr> <int> ## 1 Asymptotic F 19 ## 2 Asymptotic T 4 ## 3 Atypical Angina F 46 ## 4 Atypical Angina T 4 ## 5 No Angina F 76 ## 6 No Angina T 11 ## 7 Typical Angina F 63 ## 8 Typical Angina T 80
## # A tibble: 2 x 2 ## ChestPain count ## <chr> <int> ## 1 Asymptotic 16 ## 2 Non Anginal 69
## # A tibble: 2 x 3 ## # Groups: HasDisease [2] ## HasDisease ChestPain count ## <chr> <int> <int> ## 1 F 0 3 ## 2 T 2 1
Numero di casi di pazienti sani che hanno dimostrato anomalie nel tracciato ST a riposo:
## n ## 1 0
Con “Grandi Vasi”, ci si riferisce a:
set.seed(1996)
# Sostituzione dei valori 1 e 0 riferiti a presenza e assenza di malattia cardiaca con "true" e "false"
model <- heart_original %>%
mutate(HasDisease = as.character(HasDisease)) %>%
mutate(HasDisease = fct_recode(HasDisease, true = '1', false = '0'))
# Partizionamento del dataset in funzione del test del modello risultante
training_slice <- createDataPartition(model$HasDisease, p = 0.80, list = FALSE)
training <- model[training_slice,]
testing <- model[-training_slice,]
# Regressione Logistica
trControl <- trainControl(summaryFunction = twoClassSummary,
classProbs = TRUE)
logistic_regressor <- train(HasDisease ~ ., data = training, method = 'glm',
family = binomial(link = 'logit'), trControl = trControl)
predictions <- predict(logistic_regressor, newdata = testing, type = 'prob')
comparation <- data.frame(actual = testing$HasDisease,
predicted = predictions$true)
confusionMatrix(data = cut(predictions$true,
breaks = c(-Inf, 0.5, Inf),
labels = c('false', 'true')),
reference = testing$HasDisease,
positive = 'true', mode = 'everything')
## Confusion Matrix and Statistics ## ## Reference ## Prediction false true ## false 23 8 ## true 4 25 ## ## Accuracy : 0.8 ## 95% CI : (0.6767, 0.8922) ## No Information Rate : 0.55 ## P-Value [Acc > NIR] : 4.67e-05 ## ## Kappa : 0.6013 ## ## Mcnemar's Test P-Value : 0.3865 ## ## Sensitivity : 0.7576 ## Specificity : 0.8519 ## Pos Pred Value : 0.8621 ## Neg Pred Value : 0.7419 ## Precision : 0.8621 ## Recall : 0.7576 ## F1 : 0.8065 ## Prevalence : 0.5500 ## Detection Rate : 0.4167 ## Detection Prevalence : 0.4833 ## Balanced Accuracy : 0.8047 ## ## 'Positive' Class : true ##
“La medicina รจ un miscuglio di scienza, saggezza e tecnologia.”